课程主页:https://graphics.stanford.edu/courses/cs205a-13-fall/schedule.html

这次回顾作业7。

Problem 1

(a)$E_1$测量$f$和$f_0$的误差,$E_2$测量$f$的光滑性。

(b)该式表示关于$g$的相对变化率。

(c)

(d)由(c)可得

所以可以近似认为

(e)这部分感觉有点问题,这里略过。

Problem 2

假设$a_i$存在数组$a$中,那么利用如下算法即可在$O(k)$时间内计算出$f(x)$:

res = 0
s = 1
for i in a:
    res += i * s
    s *= x

Problem 3

(a)设

那么

因为

所以

解得

因此

(b)对$g(x)​$积分可得

(c)为方便叙述,记

那么$f​$在$c​$处的泰勒展开为

对上式积分可得

注意

所以(2)可以化为

所以精度为$3​$次。

(d)假设

那么复合求积公式为

Problem 4

利用范德蒙行列式计算结果:

对应代码如下:

import numpy as np
import matplotlib.pyplot as plt

def Vandermon(X, k):
    #维度
    n = X.shape[0]
    #计算结果
    res = np.ones(n).reshape(-1, 1)
    x = np.copy(X)
    for i in range(k):
        res = np.c_[res, x]
        x *= X
    
    return res

x1 = np.linspace(-1, 1, 500).reshape(-1, 1)

K = [3, 5, 7, 9, 11]
for k in K:
    X = np.linspace(-1, 1, k).reshape(-1, 1)
    y = np.abs(X)
    Van = Vandermon(X, k-1)
    #计算系数
    a = np.linalg.solve(Van, y)
    #计算结果
    y1 = Vandermon(x1, k-1).dot(a)
    plt.plot(x1, y1, label="degree={}".format(k))
    
plt.legend()
plt.show()

图像结果如下:

不难看出,随着次数增加,曲线变化幅度越来越大。